package com.zmn.oms.common.utils;

import com.zmn.common.utils.math.MathUtil;
import com.zmn.common.utils.string.StringUtil;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 类描述：大金额转换元
 *
 * @author wangxiaokun
 * @since 2021/09/02 11:12
 */
public class MoneyUtil {

    /**
     * 将分转化为字符串的元
     *
     * @param fen 金额，以分为单位，默认保留2为小数, 为 null 时，返回 ""
     * @return
     */
    public static String longParseToYuanStr(Long fen) {
        Double yuan = longParseToYuan(fen, 2);
        if (yuan == null) {
            return "";
        } else {
            return String.format("%.2f", yuan);
        }
    }

    /**
     * 将分转化为字符串的元
     *
     * @param fen 金额，以分为单位
     * @return
     */
    public static Double longParseToYuan(Long fen, int scale) {
        if (fen == null) {
            return null;
        }
        return MathUtil.div(fen, 100, scale);
    }

    /**
     * 判断一个字符串是否可以转换为数字（包括小数及正负）
     * @param content
     * @return
     */
    public static boolean regex(String content) {
        if (StringUtil.isBlank(content)) {
            return false;
        }
        String pattern = "^[\\+\\-]?[\\d]+(\\.[\\d]+)?$";
        Pattern r = Pattern.compile(pattern);
        Matcher m = r.matcher(content);
        return m.matches();
    }

    public static void main(String[] args) {
        String pattern = "建设.*1662|1662.*银行";
        Pattern p = Pattern.compile(pattern);
        System.out.println(p.matcher("1662中国银行储蓄卡").find());
    }
}
